﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLLTZS;
using BLLTZS.Funcionalidad;

namespace TZS.Ofertas
{
    public partial class EditarOferta : FormGenerico
    {
        public int? IdOferta
        {
            get 
            {
                if (Request.QueryString["id"] == null)
                    return null;
                else
                    return int.Parse(Request.QueryString["id"]); 
            }
        }

        private void CargarOferta()
        {
            TZS_Oferta oferta = new BLLOferta().Traer((int)IdOferta);

            txtTitulo.Text = oferta.Titulo;
            ddlAreas.SelectedValue = oferta.TZS_Area.IdArea.ToString();
            ddlAmbitos.SelectedValue = oferta.Ambito.ToString();
            ddlOferentes.SelectedValue = oferta.TZS_Oferente.IdOferente.ToString();
            ddlPuestos.SelectedValue = oferta.TZS_TipoPuesto.IdTipoPuesto.ToString();
            ddlLocalidades.SelectedValue = oferta.TZS_Localidad.IdLocalidad.ToString();
            editorDescripcion.Content = oferta.Descripcion;

            if (oferta.Orden != null)
                txtOrden.Text = oferta.Orden.ToString();
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int? ultimoOrden = new BLLOferta().TraerUltimoOrden();

                if (ultimoOrden == null)
                    lblUltimoOrden.Text = "0";
                else
                    lblUltimoOrden.Text = ultimoOrden.ToString();

                if (IdOferta == null)
                    btnGuardar.Text = "Guardar Nuevo";
                else
                {
                    CargarOferta();
                    btnGuardar.Text = "Guardar";
                }

            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                BLLOferta bllOferta = new BLLOferta();
                BLLArea bllArea = new BLLArea(bllOferta.Contexto);
                BLLOferente bllOferente = new BLLOferente(bllOferta.Contexto);
                BLLTipoPuesto bllTipoPuesto = new BLLTipoPuesto(bllOferta.Contexto);
                BLLLocalidad bllLocalidad = new BLLLocalidad(bllOferente.Contexto);
                TZS_Oferta oferta;

                if (IdOferta == null)
                    oferta = new TZS_Oferta();
                else
                    oferta = bllOferta.Traer((int)IdOferta);

                oferta.Titulo = txtTitulo.Text;
                oferta.TZS_Area = bllArea.Traer(int.Parse(ddlAreas.SelectedValue));
                oferta.Ambito = int.Parse(ddlAmbitos.SelectedValue);
                oferta.TZS_Oferente = bllOferente.Traer(int.Parse(ddlOferentes.SelectedValue));
                oferta.TZS_TipoPuesto = bllTipoPuesto.Traer(int.Parse(ddlPuestos.SelectedValue));
                oferta.TZS_Localidad = bllLocalidad.TraerLocalidad(int.Parse(ddlLocalidades.SelectedValue));

                if (txtOrden.Text.Length == 0)
                    oferta.Orden = null;
                else
                    oferta.Orden = int.Parse(txtOrden.Text);

                oferta.Descripcion = editorDescripcion.Content;

                if (IdOferta == null)
                    bllOferta.CargarNuevaOferta(oferta);

                bllOferta.GuardarCambios();
                Response.Redirect("~/Ofertas/VerOferta.aspx?ID=" + oferta.IdOferta);
            }
            catch (Exception ex)
            {
                lblErrorGuardar.Text = ex.Message;
            }
        }
    }
}